Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


lang/README.de.md cd69e012ebb2f94f36e795f04daadde66ededf08 (cd69e012) Text, 16.67 KB

Reticulum MeshChatX


Ein umfassend modifizierter und funktionsreicher Fork von Reticulum MeshChat von Liam Cottle.

Dieses Projekt ist unabhaengig vom originalen Reticulum MeshChat und steht in keiner Verbindung dazu.

• Website: meshchatx.com
• Offizieller Spiegel: github.com/Quad4-Software/MeshChatX – derzeit auch fuer Windows- und macOS-Builds genutzt.
• Aenderungsprotokoll: CHANGELOG.md
• TODO: Boards

Wichtige Aenderungen gegenueber Reticulum MeshChat

• Verwendet LXST
• Peewee-ORM durch direktes SQL ersetzt
• Axios durch natives T383838fetch ersetzt
• Electron 41.x (mit Node-24-Laufzeit)
• T383838.whl-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen
• i18n
• PNPM und Poetry fuer Abhaengigkeiten

│ [!WARNING] MeshChatX garantiert keine Datenkompatibilitaet mit aelteren
│ Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.

│ [!WARNING] Aeltere Systeme werden noch nicht vollstaendig unterstuetzt. Aktuelle
│ Mindestanforderungen: Python T383838>=3.11 und Node T383838>=24 (Electron 41 entspricht Node 24; T383838engines in
│ T383838package.json und CI folgen derselben Vorgabe).

Voraussetzungen

• Python T383838>=3.11 (aus T383838pyproject.toml)
• Node.js T383838>=24 (aus T383838package.json, Feld T383838engines)
• pnpm T38383810.33.0 (aus T383838package.json, Feld T383838packageManager)
• Poetry (verwendet in T383838Taskfile.yml und CI-Workflows)

T282828
task install
task lint:all
task test:all
task build:all

Installationsmethoden

Waehlen Sie die Methode passend zu Umgebung und Paketierung.

┌─────────────────────┬────────────────────┬─────────────────┬─────────────────────────────────────┐
│ Methode │ Frontend enthalten │ Architekturen │ Geeignet fuer │
├─────────────────────┼────────────────────┼─────────────────┼─────────────────────────────────────┤
│ Docker-Image │ Ja │ T383838linux/amd64, T383838l… │ Schnellster Start auf Linux-Servern │
│ Python Wheel (T383838.whl) │ Ja │ Jede Python-un… │ Headless/Webserver ohne Node-Build │
│ Linux AppImage │ Ja │ T383838x64, T383838arm64 │ Portabler Desktop-Einsatz │
│ Debian-Paket (T383838.deb) │ Ja │ T383838x64, T383838arm64 │ Debian/Ubuntu-Installation │
│ RPM-Paket (T383838.rpm) │ Ja │ CI-abhaengig │ Fedora/RHEL/openSUSE │
│ Aus Quellcode │ Lokal gebaut │ Host-Architekt… │ Entwicklung und individuelle Builds │
└─────────────────────┴────────────────────┴─────────────────┴─────────────────────────────────────┘

Hinweise:

• Der Release-Workflow baut explizit Linux T383838x64 und T383838arm64 AppImage + DEB.
• RPM wird ebenfalls versucht und bei Erfolg hochgeladen.

Schnellstart: Docker

T282828
docker compose up -d

Standard-Compose-Datei:

• T383838127.0.0.1:8000 auf dem Host -> Container-Port T3838388000
• T383838./meshchat-config -> T383838/config fuer Persistenz

Bei Berechtigungsproblemen:

T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config


Installation aus Release-Artefakten

1) Linux AppImage (x64/arm64)

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.AppImage von den Releases herunterladen.
2. Ausfuehrbar machen und starten:

T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu T383838.deb (x64/arm64)

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.deb herunterladen.
2. Installieren:

T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM-basierte Systeme

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.rpm herunterladen, falls im Release vorhanden.
2. Installieren:

T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm

4) Python Wheel (T383838.whl)

Release-Wheels enthalten die gebauten Web-Assets.

T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless

T383838pipx wird ebenfalls unterstuetzt:

T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl

Aus Quellcode ausfuehren (Webserver-Modus)

Fuer Entwicklung oder lokale Custom-Builds.

T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"poetry==2.3.4"
poetry check --lock
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1


Hinweise zu den Installationsbefehlen:

• T383838pnpm install --frozen-lockfile verweigert Aenderungen an T383838pnpm-lock.yaml und schlaegt fehl, wenn die Lockdatei nicht zu T383838package.json passt. Damit wird verhindert, dass eine unerwartete Upstream-Version still eingespielt wird.
• T383838verify-store-integrity=true ist auch in der projektweiten T383838.npmrc gesetzt; die explizite T383838pnpm config set-Zeile haertet zusaetzlich die Benutzerkonfiguration.
• Lifecycle-Skripte (T383838preinstall/T383838postinstall) sind in pnpm v10+ standardmaessig blockiert. Nur die unter T383838pnpm.onlyBuiltDependencies in T383838package.json aufgefuehrten Pakete duerfen Installationsskripte ausfuehren (aktuell T383838electron, T383838electron-winstaller, T383838esbuild, T383838protobufjs).
• T383838poetry check --lock schlaegt frueh fehl, wenn T383838poetry.lock nicht mit T383838pyproject.toml synchron ist; T383838poetry install aufloest danach nur aus der Lockdatei.
• Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) Poetry mit T383838pip install "poetry==2.3.4" pinnen, passend zur CI-Version.

Wenn Sie absichtlich Abhaengigkeiten aktualisieren wollen, fuehren Sie T383838pnpm update / T383838poetry update in einem dedizierten Commit aus und pruefen Sie das resultierende Lockdatei-Diff vor dem Push.

Sandboxing (Linux)

Um das native T383838meshchatx-Programm (Alias: T383838meshchat) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie Firejail oder Bubblewrap (T383838bwrap) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, Poetry, Hinweise zu USB-Seriell) finden Sie in:


Dieselbe Seite erscheint in der in-app-Dokumentation (MeshChatX-Docs), wenn sie aus den gebuendelten oder synchronisierten T383838meshchatx-docs-Dateien ausgeliefert wird.

Linux-Desktop: Emoji-Schriften

Die Emoji-Auswahl rendert Standard-Unicode-Emoji mit den Systemschriften (Electron/Chromium). Wenn Emoji als leere Kaestchen („Tofu“) erscheinen, installieren Sie ein Farb-Emoji-Paket und starten Sie die App neu.

┌────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Distribution (Beispiele) │ Paket │
├────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji (T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji (T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts
└────────────────────────────┴──────────────────────────────────────────────────────────────────┘

Nach der Installation bei Bedarf T383838fc-cache -fv ausfuehren. Optional: T383838noto-fonts fuer breitere Symbolabdeckung bei minimalen Installationen.

Desktop-Pakete aus Quellcode bauen

Diese Skripte sind in T383838package.json und T383838Taskfile.yml definiert.

Linux x64 AppImage + DEB

T282828
pnpm run dist:linux-x64

Linux arm64 AppImage + DEB

T282828
pnpm run dist:linux-arm64

RPM

T282828
pnpm run dist:rpm

Oder ueber Task:

T282828
task dist:fe:rpm

Architekturunterstuetzung

• Docker-Image: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (Build-Skripte vorhanden)
• macOS: Build-Skripte vorhanden (T383838arm64, T383838universal) fuer lokale Build-Umgebungen
• Android: native APKs — ABIs T383838arm64-v8a, T383838x86_64, plus universal

Android

MeshChatX unterstuetzt native Android-APK-Builds (nicht nur Termux).

APKs aus Quellcode bauen

Vom Repository-Root:

T282828
T8b949e# 1) Chaquopy-Wheels gemaess android/app/build.gradle bauen
bash scripts/build-android-wheels-local.sh

T8b949e# 2) Universal-APKs bauen (ein Debug- und ein Release-APK; siehe android/README.md)
Tffa657cd android
./gradlew --no-daemon :app:assembleDebug :app:assembleRelease


Es gibt nur eine Android-Variante (keine T383838slim-/T383838full-Flavors). Gradle synchronisiert den gesamten T383838meshchatx/-Baum nach T383838app/src/main/python/meshchatx/, inklusive Offline-Repository-Raeder. ABI-Packaging: T383838universal (Standard) oder T383838split (siehe T383838android/app/build.gradle).

Mit T383838-PmeshchatxAbiPackaging=universal (Standard):

• Debug: T383838android/app/build/outputs/apk/debug/app-debug.apk
• Release: T383838android/app/build/outputs/apk/release/app-release-unsigned.apk

Hinweise:

• Release-Ausgaben sind standardmaessig unsigniert (T383838scripts/sign-android-apks.sh).
• ABI: T383838-PmeshchatxAbis oder T383838MESHCHATX_ABIS; Packaging: T383838-PmeshchatxAbiPackaging oder T383838MESHCHATX_ABI_PACKAGING.
• Existiert im Repo-Root T383838dist/reticulum_meshchatx-*.whl (z. B. nach T383838python -m build --wheel -o dist .), wird dieses Rad beim Bundling bevorzugt. Details in android/README.md.

Weitere Dokumentation:


Konfiguration

┌────────────────────────┬──────────────────────────────────────┬──────────────┬───────────────────┐
│ Argument │ Umgebungsvariable │ Standard │ Beschreibung │
├────────────────────────┼──────────────────────────────────────┼──────────────┼───────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Webserver-Bind-A… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Webserver-Port │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ HTTPS deaktivier… │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (keine) │ PEM-Zertifikat u… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (keine) │ Reticulum (RNS) … │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Browser nicht au… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Basis-Authentifi… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Datenverzeichnis │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ auto/bundled │ Frontend-Verzeic… │
└────────────────────────┴──────────────────────────────────────┴──────────────┴───────────────────┘

Branches

┌────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Branch │ Zweck │
├────────┼────────────────────────────────────────────────────────────────────────────────┤
│ T383838master │ Stabile Releases. Nur produktionsreifer Code. │
│ T383838dev │ Aktive Entwicklung. Kann instabile oder unvollstaendige Aenderungen enthalten. │
└────────┴────────────────────────────────────────────────────────────────────────────────┘

Entwicklung

Gaengige Aufgaben aus T383838Taskfile.yml:

T282828
task install
task lint:all
task test:all
task build:all

T383838Makefile-Kurzformen:

┌──────────────┬───────────────────────────────────────────────┐
│ Befehl │ Beschreibung │
├──────────────┼───────────────────────────────────────────────┤
│ T383838make install │ pnpm- und Poetry-Abhaengigkeiten installieren │
│ T383838make run │ MeshChatX ueber Poetry starten │
│ T383838make build │ Frontend bauen │
│ T383838make lint │ eslint und ruff ausfuehren │
│ T383838make test │ Frontend- und Backend-Tests │
│ T383838make clean │ Build-Artefakte und node_modules entfernen │
└──────────────┴───────────────────────────────────────────────┘

Versionierung

Aktuelle Version in diesem Repository: T3838384.5.1.

• T383838package.json ist die Quelle fuer die JavaScript/Electron-Version.
• T383838meshchatx/src/version.py wird aus T383838package.json synchronisiert mit:

T282828
pnpm run version:sync

Fuer konsistente Releases die Versionsfelder dort abgleichen, wo noetig (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).

Sicherheit

• Integrierte Integritaetspruefungen und HTTPS/WSS-Standardeinstellungen in der App
• CI- und Release-Workflows in T383838.github/workflows/; auf Gitea nur T383838.gitea/workflows/github-release-sync.yml für GitHub-Release-Sync (siehe T383838SECURITY.md)

Sprache hinzufuegen

Die Locale-Erkennung erfolgt automatisch. Legen Sie eine neue Datei unter T383838meshchatx/src/frontend/locales/ an (z. B. T383838xx.json) mit denselben Schluesseln wie T383838en.json und einem obersten Feld T383838_languageName fuer die Anzeige in der Sprachauswahl. Sie koennen T383838en.json kopieren und alles von Hand uebersetzen; maschinelle Erzeugung ist optional und nie verpflichtend.

Korrekturen und menschliche Uebersetzungen sind willkommen. Verbesserungen an bestehenden Locale-Dateien oder vollstaendig manuell uebersetzte Dateien koennen Sie per Pull Request oder Issue im Quellcode-Repository oder beim GitHub-Spiegel einreichen.

Optional: Argos-Translate-Bootstrap -- Wenn Sie einen maschinellen Erstentwurf aus T383838en.json wollen, koennen Sie T383838scripts/argos_translate.py nutzen. Es kuemmert sich um Formatierung und schuetzt Interpolationsvariablen (wie T383838{count}) vor versehentlichen Aenderungen.

T282828
T8b949e# Installieren Sie argostranslate, falls noch nicht geschehen
pip install argostranslate

T8b949e# Fuehren Sie das Uebersetzungsskript aus
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Ihr Sprachname"


Nach einem maschinellen Entwurf sollten ein LLM oder ein Mensch Grammatik, Kontext und Ton pruefen (z. B. formell vs. informell).

Schluesselparitaet pruefen: T383838pnpm test -- tests/frontend/i18n.test.js --run

Keine weiteren Code-Aenderungen noetig. App, Sprachwahl und Tests lesen Locales zur Build-Zeit aus T383838meshchatx/src/frontend/locales/.

Mitwirkende

Liam Cottle - Originales Reticulum MeshChat
RFnexus - Micron-Parser (JavaScript)
markqvist - Reticulum, LXMF, LXST

Lizenz

Die projekt-eigenen Anteile stehen unter 0BSD.
Urspruengliche Upstream-Anteile von MeshChat bleiben unter MIT.
Vollstaendiger Text und Hinweise in ../LICENSE.


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────